using B.S.Requst;
using MediatR;
using B.S.Data.MES.API.Dto.InvoiceDTO;
using System;

namespace B.S.Data.MES.API.Applications.B.S.KApplications.Query.InvoiceReceiptQuery
{
    /// <summary>
    /// 获取到票列表查询
    /// 用于处理到票信息的列表查询请求
    /// </summary>
    public class GetInvoiceReceiptQuery : IRequest<APIRequst<APIPageing<List<InvoiceReceiptDTO>>>>
    {
        /// <summary>
        /// 发票ID（可选，用于过滤特定发票的到票记录）
        /// </summary>
        public int InvoiceId { get; set; }

        /// <summary>
        /// 关键词（可选，用于模糊搜索）
        /// </summary>
        public string? Keyword { get; set; }

        /// <summary>
        /// 到票状态（可选，用于过滤特定状态的到票记录）
        /// 0：部分到票，1：全部到票，2：未到票
        /// </summary>
        public int ReceiptStatus { get; set; }

        /// <summary>
        /// 开始日期（可选，用于过滤指定日期范围内的到票记录）
        /// </summary>
        public DateTime? StartDate { get; set; }

        /// <summary>
        /// 结束日期（可选，用于过滤指定日期范围内的到票记录）
        /// </summary>
        public DateTime? EndDate { get; set; }

        /// <summary>
        /// 页码（用于分页）
        /// </summary>
        public int PageIndex { get; set; }

        /// <summary>
        /// 每页记录数（用于分页）
        /// </summary>
        public int PageSize { get; set; }
    }
}